// 与服务器进行沟通
async function getMsg(username, password) {
    try {
        let res = await axios({
            url: '/register',
            method: 'POST',
            data: { username: username, password: password }
        });
        pxmu.toast({
            msg: '注册成功,将跳转登陆页',
            time: 2500,
            bg: 'rgba(0, 0, 0, 0.86)',
            color: '#fff',
            location: 'top',
            animation: 'slidedown',
            type: 'pc',
            status: 'success'
        });

        // 设置超时以确保toast消息显示完成后再跳转
        setTimeout(function () {
            location.href = './login.html';
        }, 2000);

    } catch (err) {
        pxmu.fail('注册失败');
        throw err; // 重新抛出错误以便被外层catch捕获
    }
}

// 注册点击事件
document.querySelector('#btn-register').addEventListener('click', async function (e) {
    e.preventDefault();

    // 获取最新的表单数据
    let username = document.querySelector('#input-email').value.trim();
    let password = document.querySelector('#input-password').value.trim();

    // 检查输入是否为空
    if (!username || !password) {
        pxmu.fail({
            msg: '用户名和密码不能为空',
            time: 2500,
            bg: 'rgba(0, 0, 0, 0.65)',
            color: '#fff',
            animation: 'fade',
            close: true,
            inscroll: false,
            inscrollbg: 'rgba(0, 0, 0, 0.45)',
        });
        return;
    }

    const nameReg = /^[a-zA-Z0-9]{8,30}$/;
    const wordReg = /^[a-zA-Z0-9]{6,30}$/;

    // 用户名校验
    if (!nameReg.test(username)) {
        pxmu.fail({
            msg: '用户名须由8-30位的字母或数字组成',
            time: 2500,
            bg: 'rgba(0, 0, 0, 0.65)',
            color: '#fff',
            animation: 'fade',
            close: true,
            inscroll: false,
            inscrollbg: 'rgba(0, 0, 0, 0.45)',
        });
        return;
    }

    // 密码校验
    if (!wordReg.test(password)) {
        pxmu.fail({
            msg: '密码须由6-30位的字母或数字组成',
            time: 2500,
            bg: 'rgba(0, 0, 0, 0.65)',
            color: '#fff',
            animation: 'fade',
            close: true,
            inscroll: false,
            inscrollbg: 'rgba(0, 0, 0, 0.45)',
        });
        return;
    }

    // 禁用按钮以防止重复提交
    let btnRegister = document.querySelector('#btn-register');
    btnRegister.disabled = true;

    try {
        await getMsg(username, password);
    } catch (err) {
        // 如果有错误发生，重新启用按钮
        btnRegister.disabled = false;
    }
})